Configurable integrated circuit for use in a multi-function handheld device

ABSTRACT

A configurable integrated circuit includes at least one general purpose input/output (GPIO) interface module, a first functional module, and a second functional module. The GPIO interface module includes a plurality of GPIO cells, wherein each of the GPIO cells is operably coupled to a corresponding pin of the configurable integrated circuit. When the configurable integrated circuit is in a first functional mode, at least one of the GPIO cells is operably coupled to its corresponding pin such that the corresponding pin functions as a digital input pin for the first functional module. When the configurable integrated circuit is in a second functional mode, at least one of the GPIO cells is operably coupled to its corresponding pin such that the corresponding pin functions as a digital output pin for the second functional module.

CROSS REFERENCE TO RELATED PATENTS

This patent application is claiming priority under 35 USC § 119 to provisionally filed patent application entitled MULTI-FUNCTION HANDHELD DEVICE, having a provisional Ser. No. of 60/429,941, and a filing date of Nov. 29, 2002.

BACKGROUND OF THE INVENTION

1. Technical Field of the Invention

This invention relates generally to portable electronic equipment and more particularly to integrated circuits used within such portable electronic equipment.

2. Description of Related Art

As is known, integrated circuits are used in a wide variety of electronic equipment, including portable, or handheld, devices. Such handheld devices include personal digital assistants (PDA), CD players, MP3 players, DVD players, AM/FM radio, a pager, cellular telephones, computer memory extension (commonly referred to as a thumb drive or USB flash disk), etc. Each of these handheld devices includes one or more integrated circuits to provide the functionality of the device. For example, a thumb drive may include an integrated circuit for interfacing with a computer (e.g., personal computer, laptop, server, workstation, etc.) via one of the ports of the computer (e.g., Universal Serial Bus (USB), parallel port, FireWire, etc.) and at least one other memory integrated circuit (e.g., flash memory). As such, when the thumb drive is coupled to a computer, data can be read from and written to the memory of the thumb drive. Accordingly, a user may store personalized information (e.g., presentations, Internet access account information, etc.) on his/her thumb drive and use any computer to access the information.

As another example, an MP3 player may include multiple integrated circuits to support the storage and playback of digitally formatted audio (e.g., formatted in accordance with the MP3 specification). As is known, one integrated circuit may be used for interfacing with a computer, another integrated circuit for generating a power supply voltage, another for processing the storage and/or playback of the digitally formatted audio data, and still another for rendering the playback of the digitally formatted audio data audible.

As is further known, integrated circuits have enabled the creation of a plethora of handheld devices, however, to be “wired” in today's electronic world, a person needs to posses multiple handheld devices. For example, one may own a cellular telephone for cellular telephone service, a PDA for scheduling, address book, etc., one or more thumb drives for extended memory functionality, an MP3 player for storage and/or playback of digitally recorded music, a radio, etc. Thus, even though a single handheld device may be relatively small, carrying multiple handheld devices on one's person can become quite burdensome.

Further, each manufacturer of such handheld devices typically offers different look and feel (e.g., features, functions, input/output configurations, etc.) of its handheld devices to distinguish itself in the market place. Still further, a manufacturer may offer several versions of a handheld device with varying feature sets to appeal to multiple market groups. Accordingly, such manufacturers require a multitude of integrated circuits to accommodate their various handheld products. For an integrated circuit manufacturer's perspective, they are required to develop multiple integrated circuits for each of their handheld manufacturing clients or, at a minimum, develop client specific integrated circuits for each handheld manufacturing client that includes multiple features that may or may not be used. As is well known in the integrated circuit field, having to develop multiple versions of essentially the same integrated circuit is costly and substantially impacts profit margins. As is further known, including multiple features on an integrated circuit increases the integrated circuit's pin count, which further adds to the cost of the integrated circuit.

Therefore, a need exists for a configurable integrated circuit that provides multiple functions for use in various handheld devices.

BRIEF SUMMARY OF THE INVENTION

The configurable integrated circuit for use in a multiple function handheld device of the present invention substantially meets these needs and others. In one embodiment, a configurable integrated circuit includes at least one general purpose input/output (GPIO) interface module, a first functional module, and a second functional module. The GPIO interface module includes a plurality of GPIO cells, wherein each of the GPIO cells is operably coupled to a corresponding pin of the configurable integrated circuit. When the configurable integrated circuit is in a first functional mode, at least one of the GPIO cells is operably coupled to its corresponding pin such that the corresponding pin functions as a digital input pin for the first functional module. When the configurable integrated circuit is in a second functional mode, at least one of the GPIO cells is operably coupled to its corresponding pin such that the corresponding pin functions as a digital output pin for the second functional module. With such a configurable integrated circuit, multiple features may be included on one integrated circuit with minimal increase of pin count, which may be used by handheld device manufacturers to produce their varied product lines.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a schematic block diagram of a multi-function handheld device in accordance with the present invention;

FIG. 2 is a schematic block diagram of another multi-function handheld device in accordance with the present invention;

FIG. 3 is a schematic block diagram of a configurable integrated circuit in accordance with the present invention;

FIG. 4 is a schematic block diagram of a general purpose input/output interface module in accordance with the present invention;

FIG. 5 is a schematic block diagram of another general purpose input/output interface module in accordance with the present invention;

FIG. 6 is a schematic block diagram of a general purpose input/output cell in accordance with the present invention;

FIG. 7 is a schematic block diagram of another configurable integrated circuit in accordance with the present invention; and

FIG. 8 is a schematic block diagram of yet another configurable integrated circuit in accordance with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a schematic block diagram of a multi-function handheld device 10 and corresponding integrated circuit 12 operably coupled to a host device A, B, or C. The multi-function handheld device 10 also includes memory integrated circuit (IC) 16 and a battery 14. The integrated circuit 12 includes a host interface 18, a processing module 20, a memory interface 22, a multimedia module 24, a DC-to-DC converter 26, and a bus 28. The multimedia module 24 alone or in combination with the processing module 20 provides the functional circuitry for the integrated circuit 12. The DC-to-DC converter 26, which may be constructed in accordance with the teaching of U.S. Pat. No. 6,204,651, entitled METHOD AND APPARATUS FOR REGULATING A DC VOLTAGE, provides at least a first supply voltage to one or more of the host interface 18, the processing module 20, the multimedia module 24, and the memory interface 22. The DC-to-DC converter 26 may also provide VDD to one or more of the other components of the handheld device 10.

When the multi-function handheld device 10 is operably coupled to a host device A, B, or C, which may be a personal computer, workstation, server (which are represented by host device A), a laptop computer (host device B), a personal digital assistant (host device C), and/or any other device that may transceive data with the multifunction handheld device, the processing module 20 performs at least one algorithm 30, where the corresponding operational instructions of the algorithm 30 are stored in memory 16 and/or in memory incorporated in the processing module 20. The processing module 20 may be a single processing device or a plurality of processing devices. Such a processing device may be a microprocessor, micro-controller, digital signal processor, microcomputer, central processing unit, field programmable gate array, programmable logic device, state machine, logic circuitry, analog circuitry, digital circuitry, and/or any device that manipulates signals (analog and/or digital) based on operational instructions. The associated memory may be a single memory device or a plurality of memory devices. Such a memory device may be a read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, and/or any device that stores digital information. Note that when the processing module 20 implements one or more of its functions via a state machine, analog circuitry, digital circuitry, and/or logic circuitry, the associated memory storing the corresponding operational instructions is embedded with the circuitry comprising the state machine, analog circuitry, digital circuitry, and/or logic circuitry.

With the multi-function handheld device 10 in the first functional mode, the integrated circuit 12 facilitates the transfer of data between the host device A, B, or C and memory 16, which may be non-volatile memory (e.g., flash memory, disk memory, SDRAM) and/or volatile memory (e.g., DRAM). In one embodiment, the memory IC 16 is a NAND flash memory that stores both data and the operational instructions of at least some of the algorithms 30.

In this mode, the processing module 30 retrieves a first set of operational instructions (e.g., a file system algorithm, which is known in the art) from the memory 16 to coordinate the transfer of data. For example, data received from the host device A, B, or C (e.g., Rx data) is first received via the host interface module 18. Depending on the type of coupling between the host device and the handheld device 10, the received data will be formatted in a particular manner. For example, if the handheld device 10 is coupled to the host device via a USB cable, the received data will be in accordance with the format proscribed by the USB specification. The host interface module 18 converts the format of the received data (e.g., USB format) into a desired format by removing overhead data that corresponds to the format of the received data and storing the remaining data as data words. The size of the data words generally corresponds directly to, or a multiple of, the bus width of bus 28 and the word line size (i.e., the size of data stored in a line of memory) of memory 16. Under the control of the processing module 20, the data words are provided, via the memory interface 22, to memory 16 for storage. In this mode, the handheld device 10 is functioning as extended memory of the host device (e.g., like a thumb drive).

In furtherance of the first functional mode, the host device may retrieve data (e.g., Tx data) from memory 16 as if the memory were part of the computer. Accordingly, the host device provides a read command to the handheld device, which is received via the host interface 18. The host interface 18 converts the read request into a generic format and provides the request to the processing module 20. The processing module 20 interprets the read request and coordinates the retrieval of the requested data from memory 16 via the memory interface 22. The retrieved data (e.g., Tx data) is provided to the host interface 18, which converts the format of the retrieved data from the generic format of the handheld device into the format of the coupling between the handheld device and the host device. The host interface 18 then provides the formatted data to the host device via the coupling.

The coupling between the host device and the handheld device may be a wireless connection or a wired connection. For instance, a wireless connection may be in accordance with Bluetooth, IEEE 802.11(a), (b) or (g), and/or any other wireless LAN (local area network) protocol, IrDA, etc. The wired connection may be in accordance with one or more Ethernet protocols, FireWire, USB, etc. Depending on the particular type of connection, the host interface module 18 includes a corresponding encoder and decoder. For example, when the handheld device 10 is coupled to the host device via a USB cable, the host interface module 18 includes a USB encoder and a USB decoder.

As one of average skill in the art will appreciate, the data stored in memory 16, which may have 64 Mbytes or greater of storage capacity, may be text files, presentation files, user profile information for access to varies computer services (e.g., Internet access, email, etc.), digital audio files (e.g., MP3 files, WMA—Windows Media Architecture-, MP3 PRO, Ogg Vorbis, AAC—Advanced Audio Coding, MIDI—Musical Interface), digital video files [e.g., still images or motion video such as MPEG (motion picture expert group) files, JPEG (joint photographic expert group) files, etc.], address book information, and/or any other type of information that may be stored in a digital format. As one of average skill in the art will further appreciate, when the handheld device 10 is coupled to the host device A, B, or C, the host device may power the handheld device 10 such that the battery is unused.

When the handheld device 10 is not coupled to the host device, the processing module 20 executes an algorithm 30 to detect the disconnection and to place the handheld device in a second functional mode. In the second functional mode, the processing module 20 retrieves, and subsequently executes, a second set of operational instructions from memory 16 to support the second functional mode. For example, the second functional mode may correspond to MP3 file playback, digital dictaphone recording, MPEG file playback, JPEG file playback, text messaging display, cellular telephone functionality, and/or AM/FM radio reception. Each of these functions is known in the art, thus no further discussion of the particular implementation of these functions will be provided except to further illustrate the concepts of the present invention.

In the second functional mode, under the control of the processing module 20 executing the second set of operational instructions, the multimedia module 24 retrieves multimedia data 34 from memory 16. The multimedia data 34 includes at least one of digitized audio data, digital video data, and text data. Upon retrieval of the multimedia data, the multimedia module 24 converts the data 34 into rendered output data 36. For example, the multimedia module 24 may convert digitized data into analog signals that are subsequently rendered audible via a speaker or via a headphone jack. In addition, or in the alternative, the multimedia module 24 may render digital video data and/or digital text data into RGB (red-green-blue), YUV, etc., data for display on an LCD (liquid crystal display) monitor, projection CRT, and/or on a plasma type display. The multimedia module 24 will be described in greater detail with reference to FIG. 2.

As one of average skill in the art will appreciate, the handheld device 10 may be packaged similarly to a thumb drive, a cellular telephone, pager (e.g., text messaging), a PDA, an MP3 player, a radio, and/or a digital dictaphone and offer the corresponding functions of multiple ones of the handheld devices (e.g., provide a combination of a thumb drive and MP3 player/recorder, a combination of a thumb drive, MP3 player/recorder, and a radio, a combination of a thumb drive, MP3 player/recorder, and a digital dictaphone, combination of a thumb drive, MP3 player/recorder, radio, digital dictaphone, and cellular telephone, etc.).

FIG. 2 is a schematic block diagram of another handheld device 40 and a configurable integrated circuit 12. In this embodiment, the handheld device 40 includes the configurable integrated circuit 12, the battery 14, the memory 16, a crystal clock source 42, one or more multimedia input devices (e.g., one or more video capture device(s) 44, keypad(s) 54, microphone(s) 46, etc.), and one or more multimedia output devices (e.g., one or more video and/or text display(s) 48, speaker(s) 50, headphone jack(s) 52, etc.). The configurable integrated circuit 12 includes the host interface 18, the processing module 20, the memory interface 22, the multimedia module 24, the DC-to-DC converter 26, random access memory (RAM) 33, read only memory (ROM) 35, at least one general purpose input/output (GPIO) interface module 80, and a clock generator 56, which produces a clock signal (CLK) for use by the other modules. As one of average skill in the art will appreciate, the clock signal CLK may include multiple synchronized clock signals at varying rates for the various operations of the multifunction handheld device.

Handheld device 40 functions in a similar manner as handheld device 10 when exchanging data with the host device (i.e., when the handheld device is in the first functional mode). In addition, while in the first functional mode, the handheld device 40 may store digital information received via one of the multimedia input devices (e.g., video capture device 44, microphone 46, and keypad 54). For example, a voice recording received via the microphone 46 may be provided as multimedia input data 58, digitized via the multimedia module 24 and digitally stored in memory 16. Similarly, video recordings may be captured via the video capture device 44 (e.g., a digital camera, a camcorder, VCR output, DVD output, etc.) and processed by the multimedia module 24 for storage as digital video data in memory 16. Further, the key pad 54 (which may be a keyboard, touch screen interface, or other mechanism for inputting text information) provides text data to the multimedia module 24 for storage as digital text data in memory 16. In this extension of the first functional mode, the processing module 20 arbitrates write access to the memory 16 among the various input sources (e.g., the host and the multimedia module).

When the handheld device 40 is in the second functional mode (i.e., not connected to the host), the handheld device may record multimedia data to and/or playback multimedia data from the memory 16. Note that the data provided by the host when the handheld device 40 was in the first functional mode includes the multimedia data. The playback of the multimedia data is similar to the playback described with reference to the handheld device 10 of FIG. 1. In this embodiment, depending on the type of multimedia data 34, the rendered output data 36 may be provided to one or more of the multimedia output devices. For example, rendered audio data may be provided to the headphone jack 52 and/or to the speaker 50, while rendered video and/or text data may be provided to the display 48. The handheld device 40 may also record multimedia data 34 while in the second functional mode. For example, the handheld device 40 may store digital information received via one of the multimedia input devices 44, 46, and 54.

The GPIO interface module 80, which will be described in greater detail with reference to FIGS. 4–6, is operably coupled to bus 28 and to one or more peripheral components of the multi-function handheld device 40. For example, the peripheral components include, but are not limited to, a CDROM drive, control buttons, switches, light emitting diode (LED) display, liquid crystal display (LCD) display, MMC/SC card, flash memory module, a RAM memory module, a two-wire interface module, hard drive, and a system packet interface module.

The GPIO interface module 80 may be configured to provide an input and/or an output for one or more of the peripheral components of the multi-function handheld device 40 to functional modules of the integrated circuit 12. The functional modules include the processing module 20, while executing one or more of algorithms 30, one or more of the functions of the multimedia module 24, and/or one or more functions of the host. For example, in one mode, the multi-function handheld device may be reading data from a CD for recording to memory 16 or for playback via the multimedia module 24. In this mode, the GPIO interface module 80 is configured, with respect to its connection to the CDROM drive, to receive digital data, i.e., the corresponding pins are configured as input pins. During the playback or recording of the digital data from the CD, the multi-function handheld device may provide control information (e.g., stop, pause, fast forward, etc.) to the CDROM drive using the same corresponding pins. In this instance, the GPIO module is reconfigured, with respect to its connection to the CDROM drive, to output digital data i.e., the corresponding pins are configured as output pins.

In another example, pins of the integrated circuit 12 coupled to the GPIO interface module 80 may be shared between multiple peripheral devices and/or between multiple functional modules of the integrated circuit 12. For instance, the same pins of the integrated circuit 12 may be used to output digital data to a display (e.g., LCD or LED) in one mode and, in another mode, be used to receive digital data from buttons and/or switches. As one of average skill in the art will appreciate, there is a wide variety of ways in which the pins of the integrated circuit may be shared via the GPIO interface module 80 to support a multitude of functions provided by the multi-function handheld device.

FIG. 3 is a schematic block diagram of another embodiment of the integrated circuit 12 that may be incorporated in the multi-function handheld device 10. The integrated circuit 12 includes the GPIO interface module 80, a CD control interface 82, a serial packet interface (SPI) module 83, a two-wire interface module 84, an LCD display interface module 86, a static and/or dynamic RAM interface 88, an LED interface module 90, processing module 20, ROM 35, RAM 33, a peripheral bus 104, a memory bus 106, a system-on-a-chip (SOC) management module 100, a universal serial bus (USB) interface 102, a digital-to-analog converter 72, an analog-to-digital converter 68, a multiplexer, buffers, mixing module 78, DC to DC converter 26, a programmable driver 92, and a microphone bias module 96.

In operation, the integrated circuit 12 may facilitate the transceiving of data with a host device between system memory of a multi-function handheld device and a host device, may playback multimedia data, and/or may record multimedia data via input ports. When the integrated circuit 12 is transceiving with a host device, the USB interface 102 operably couples the integrated circuit 12 to a host device. In addition, the RAM interface 88 couples, either via the general purpose input/output interface module 80 or directly, to the system memory (e.g., memory IC 16) of the multi-function handheld device 10. In this configuration, data that is received from the host device is placed on the memory bus 106 by the USB interface 102. The SDRAM interface 88 retrieves the data from the memory bus 106 and forwards it for storage to the system memory under the control of the processing module 20 that is executing a file system storage algorithm. The data being stored may correspond to playback data, such as an MP3 file, a WMA file, a video file, a text file, and/or a combination thereof. Alternatively, or in addition to, the data being received from the host may correspond to programming instructions of an algorithm 30, which may be an MP3 decoder algorithm, a WMA decoder algorithm, a MPEG algorithm, a JPEG algorithm, et cetera.

For providing data from the handheld device 10 to the host device, the RAM interface 88 retrieves data from the system memory and places it on the memory bus 106 under the control of the processing module 20 as it executes a file system algorithm. The USB interface 102 retrieves the data from the memory bus 106 and forwards it to the host device in accordance with one of the versions of the USB standard.

Data may also be stored in the system memory that is received via the CD (compact disk) control interface 82, and/or via the two-wire interface 84, which may be expanded to a three or four wire interface. Via these interfaces 82 and 84, data is received via the general purpose input/output module 80, which will be described in greater detail with reference to FIGS. 4–8, and placed on the memory bus 106. The RAM interface 88 retrieves the data from the memory bus 106 and provides it to the system memory, which is done under the control of the processing module as it executes a data storage algorithm.

When the integrated circuit 12 is recording audio input signals received via the microphone input, the microphone bias circuit 96 biases the audio input signals for optimal operations and provides them to the mixing module 78 and to the multiplexer (mux) via a buffer. The received audio input signals are converted to digital audio signals via the analog-to-digital converter 68. The digital audio signals may then be stored in system memory (e.g., memory IC 16). Alternatively, the audio input signal may be provided to the summing module 78 and subsequently provided to headphone jack 94 via the programmable driver 92 as a component of a summed analog signal. The summing module 78 may sum one or more of the analog input signals it receives from a line input, an FM radio input, the microphone bias circuit 96, and the analog output of the DAC 72 to produce the summed analog signal.

When the integrated circuit 12 is in a playback mode, digital multimedia data is retrieved from the system memory and provided to the digital-to-analog converter 72. The digital-to-analog converter 72 converts the digital multimedia signals, which may be audio data, video data and/or text data, into analog multimedia signals and provides the analog multimedia signals to mixing module 78. In the playback mode, the mixing module 78 will generally have the other inputs muted, such that its output corresponds directly to the analog multimedia signals provided by the digital-to-analog converter 72.

The programmable driver 92 increases the drive power of the analog multimedia signals (e.g., audio signals when the analog multimedia signals are provided to a headphone) and provides it to the headphone jack 94. As one of average skill in the art will appreciate, a fixed driver may replace the programmable driver 92 to drive the headphone jack 94.

In addition to producing audio outputs during playback mode, the integrated circuit 12 may provide video outputs via the LCD interface 86. The display interface 86 drives an LCD display, which, alternatively, may be an LED display, plasma display and/or any other type of display. The data being displayed may correspond to the multimedia data retrieved from the system memory, and/or may correspond to the commands inputted via the GPIO interface module 80.

The system-on-a-chip (SOC) management module 100 processes interrupt controls, generates clock signals for the integrated circuit 12, performs bit manipulations, performs debugging operations, and executes a Reed-Solomon, or other type of encoding/decoding algorithm to encode and/or decode data.

The DC to DC converter 26 provides at least one supply voltage for the integrated circuit 12-3 and typically provides two supply voltages. For example, the DC to DC converter 26 may produce a 3.3 volts supply and a 1.8 volt supply.

FIG. 4 is a schematic block diagram of an embodiment of the GPIO interface module 80 that includes a plurality of GPIO cells 110–118, which will be described in greater detail with reference to FIG. 6. Each of the GPIO cells 110–118 is coupled to provide digital output signals from a first functional module 120 to its corresponding IC pin and to receive digital input signals from its corresponding pin and provide them to the second functional module 122. As configured, one GPIO cell may be functioning to receive digital input signals for the second functional module 122, while another GPIO cell may be functioning to provide digital output signals from the first functional module 120 to its corresponding pin. In general, the configuration of whether a GPIO cell will function as an input or an output is controlled by the processing module 20 as it executes one of it plurality of algorithms 30. As one of average skill in the art will appreciate, even though the first functional module is shown to provide digital output signals it may also include connections to receive digital input signals from the GPIO 80 and the second functional module may also include connections to provide digital output signals to the GPIO 80. As one of average skill in the art will further appreciate, the first and second modules 120 and 122 may be algorithms being executed by the processing module 20, operations performed by the multimedia module 24, and/or any of the interfaces 82–90 of FIG. 3.

FIG. 5 is a schematic block diagram of another embodiment of the GPIO interface module 80 that includes programmable logic fabric 124 and the plurality of GPIO cells 110–118, which will be described in greater detail with reference to FIG. 6. Each of the GPIO cells 110–118 is coupled to its corresponding IC pin and to receive digital output signals from the programmable logic fabric and to provide them to its corresponding pin and to provide digital input signals from its corresponding pin to the programmable logic fabric 124. The programmable logic fabric 124, which may be a field programmable gate array (FPGA), programmable logic device, and/or any other programmable logic circuitry, is coupled to the first and second functional modules 120 and 122.

In this embodiment, the programmable logic fabric 124 may be programmed to provide different coupling between the IC pins and the first and second functional modules 120 and 122 to enable a handheld device manufacturer to selectively configure the pin of the integrated circuit 12 to facilitate printed circuit board layout. In addition, the programmable logic fabric 124 may be programmed to process the digital input and output signals prior to providing them to the first and/or second functional modules and/or prior to providing them the corresponding pins. Such processing includes, but is not limited to, encoding the signals in accordance with an encoding protocol (e.g., non-return to zero, multi-level digital encoding, etc.), decoding the signals in accordance with the encoding protocol, encrypting the signals in accordance with an encryption protocol, decrypting the signals in accordance with the encryption protocol, adjusting transmit power levels, amplifying power levels of received signals, forward error correction, and equalization.

FIG. 6 is a schematic block diagram of a GPIO cell 110–118 that is coupled to one pin of the integrated circuit 12. Each of the GPIO cells 110–118 includes a plurality of registers 130–136, a plurality of multiplexers 138 and 140, and a plurality of drivers 142 and 144. Register 132 stores a mode select signal that controls the multiplexers 138 and 140. In a 1st state of the GPIO cell, which may correspond to configuring the pin as an output pin, register 132 stores a digital value that causes the multiplexer 138 to pass output data from the first or second functional module 120 or 122 to driver 144. In addition, register 132 provides the digital value corresponding to the first state of the GPIO cell to multiplexer 140, which causes it to pass an output enable signal, which is produced by the processing module 20 while executing one of its algorithms, to the driver 144. The output enable signal either activates or deactivates the driver 144.

In a 2^(nd) state of the GPIO cell, register 132 may store an alternative digital value that causes multiplexer 138 to pass data stored in register 134 to driver 144. The data stored in register 134 may be provided by the processing module 20 while executing the current algorithm or another algorithm. In addition, register 132 provides the alternative digital value to multiplexer 140, which passes the output enable signal to driver 144.

In a 3^(rd) state of the GPIO cell, register 132 provides a third digital value to multiplexer 140, which causes it to pass the data stored in register 136 to control the activation or deactivation of the driver 144. The data stored in register 136 may be provided by the processing module 20 which executing one of its algorithms. In addition, register 132 provides the third digital value to multiplexer 138, which causes it to pass the output data from the first or second functional module to driver 144.

In a 4^(th) state of the GPIO cell, register 132 may store a fourth digital value that causes multiplexer 138 to pass data stored in register 134 to driver 144. The data stored in register 134 may be provided by the processing module 20 while executing the current algorithm or another algorithm. In addition, register 132 provides the fourth digital value to multiplexer 140, which causes it to pass the data stored in register 136 to control the activation or deactivation of the driver 144. As such, the same pin may be used for outputting multiple signals from different functional modules, thus reducing the number of pins needed for the integrated circuit.

The GPIO cell may be configured to receive digital input signals from its corresponding pin via buffer 142 and to provide the received digital input signals to register 130 and/or to the first or second functional module 120 or 122 (e.g., data in). In this mode, the processing module 20, while it executes an algorithm, controls whether the received digital input signals will be provided to register 130 and/or to the first or second functional modules 120 or 122. In addition, the processing module 20 deactivates the driver 144.

FIG. 7 is a schematic block diagram of another embodiment of integrated circuit 12, where the integrated circuit 12 includes a plurality of general purpose input/output (GPIO) modules 80-1 and 80-2. Each GPIO module 80-1 and 80-2 is coupled to the first and second functional modules 120 and 122, respectively. The functional modules 120 and 122 may correspond to the processing module 20, the CD control interface module 82, the I²C interface module 84, display interface module 86, RAM interface module 88, the interface module 90, and/or any other type of data interface that may be used in a handheld multi-function device.

FIG. 8 is a schematic block diagram of an alternate embodiment of an integrated circuit 12 that includes a plurality of GPIOs 80-1 and 80-2, a plurality of functional modules 120 and 122, and programmable logic fabric 124. The programmable logic fabric may be field programmable gate array circuitry, programmable gate array circuitry and/or any other type of configurable circuitry. As one of average skill in the art will appreciate, the integrated circuit 12 may include more or less GPIO modules, more or less functional modules 120 and 122, and more or less programmable logic fabric 124 than shown in FIG. 8.

As one of average skill in the art will appreciate, the term “substantially” or “approximately”, as may be used herein, provides an industry-accepted tolerance to its corresponding term. Such an industry-accepted tolerance ranges from less than one percent to twenty percent and corresponds to, but is not limited to, component values, integrated circuit process variations, temperature variations, rise and fall times, and/or thermal noise. As one of average skill in the art will further appreciate, the term “operably coupled”, as may be used herein, includes direct coupling and indirect coupling via another component, element, circuit, or module where, for indirect coupling, the intervening component, element, circuit, or module does not modify the information of a signal but may adjust its current level, voltage level, and/or power level. As one of average skill in the art will also appreciate, inferred coupling (i.e., where one element is coupled to another element by inference) includes direct and indirect coupling between two elements in the same manner as “operably coupled”. As one of average skill in the art will further appreciate, the term “compares favorably”, as may be used herein, indicates that a comparison between two or more elements, items, signals, etc., provides a desired relationship. For example, when the desired relationship is that signal 1 has a greater magnitude than signal 2, a favorable comparison may be achieved when the magnitude of signal 1 is greater than that of signal 2 or when the magnitude of signal 2 is less than that of signal 1.

The preceding discussion has presented a configurable integrated circuit for use in a multi-function handheld device. As one of average skill in the art will appreciate, other embodiments may be derived from the teachings of the present invention without deviating from the scope of the claims. 

1. A configurable integrated circuit comprises: at least one general purpose input/output (GPIO) interface module that includes a plurality of GPIO cells, wherein a GPIO cell of the plurality of GPIO cells is operably coupled to a corresponding pin of the configurable integrated circuit, wherein, when the configurable integrated circuit is in a first functional mode, the GPIO cell is operably coupled to the corresponding pin such that the corresponding pin functions as a digital input pin and when the configurable integrated circuit is in a second functional mode, the GPIO cell is operably coupled to the corresponding pin such that the corresponding pin functions as a digital output pin; a first functional module having a connection operably coupled to the GPIO cell when the configurable integrated circuit is in the first functional mode; a second functional module having a connection operably coupled to the GPIO cell when the configurable integrated circuit is in the second functional mode; and programmable logic fabric operably coupled between the at least one GPIO interface module and the first or second functional module.
 2. The configurable integrated circuit of claim 1 further comprises: remaining GPIO cells of the plurality of GPIO cells are operably coupled to the programmable logic fabric, wherein the programmable logic fabric is programmed to provide at least one of: coupling between at least some of the remaining GPIO cells and corresponding pins of a set of pins of the configurable integrated circuit; processing of inbound digital signals when the configurable integrated circuit is in the first functional mode; and processing of outbound digital signals when the configurable integrated circuit is in the second functional mode.
 3. The configurable integrated circuit of claim 1, wherein the first functional module and second functional module comprises at least one of: a liquid crystal display (LCD) interface module; a light emitting diode (LED) interface module; a random access memory (RAM) interface module; a compact disk (CD) control interface module; flash memory module; hard drive; random access memory (RAM) module; a two-wire interface module; and a system, packet interface module.
 4. The configurable integrated circuit of claim 1, wherein each of the plurality of GPIO cells comprises: a data input buffer having an input and an output, wherein the input of the data input buffer is operably coupled to the corresponding pin; a data output buffer having an input and an output, wherein the output of the data output buffer is operably coupled to the corresponding pin; a data input connection operably coupled to, when enabled, provide an inbound data signal from the output of the data input buffer to the first functional module; a data input register operably coupled to, when enabled, store the inbound data signal for subsequent access by a processing core; a data output connection operably coupled to, when enabled, provide an outbound data signal from the second functional module to the input of the data output buffer; a data output register operably coupled to, when enabled, provide an alternate outbound data signal to the input of the data output buffer; and an input/output selection module operably coupled to enable at least one of the data input buffer, the data output buffer, the data input connection, the data input register, the data output connection, and the data output register.
 5. The configurable integrated circuit of claim 4, wherein the input/output selection module comprises: a first control register operably coupled to store a multiplexer selection signal; a second control register operably coupled to store an overwriting enable/disable signal; a first multiplexer operably coupled to provide the outbound data signal to the input of the data output buffer when the multiplexer selection signal is in a first state and to provide the alternate output data signal to the input of the data output buffer when the multiplexer selection signal is in a second state; and a second multiplexer operably coupled to provide an output enable signal to the data output buffer when the multiplexer selection signal is in a third state and to provide the overwriting enable/disable signal to the data output buffer when the multiplexer selection signal is in a fourth state.
 6. The configurable integrated circuit of claim 5 further comprises: the multiplexer selection signal being in the first state and the third state simultaneously, the first state and the fourth state simultaneously, the second state and the third state simultaneously, or the second state and the fourth state simultaneously.
 7. The configurable integrated circuit of claim 1, wherein the at least one general purpose input/output (GPIO) interface module further comprises: a first GPIO interface module operably coupled to the first and second functional modules; and a second GPIO interface module operably coupled to a third functional module and a fourth functional module, wherein, when the configurable integrated circuit is in a third functional mode, a GPIO cell of the second GPIO interface module is operably coupled to a second corresponding pin such that the second corresponding pin functions as a digital input pin and when the configurable integrated circuit is in a second functional mode, the GPIO cell of the second GPIO interface module is operably coupled to the second corresponding pin such that the second corresponding pin functions as a digital output pin.
 8. A configurable general purpose input/output (GPIO) comprises: a first GPIO cell operably coupled to a first pin of an integrated circuit to receive first input signals from the first pin and provide the first input signals to a first circuit when a mode selection signal is in a first state and to provide the first input signals to a first register when the mode selection signal is in a second state, wherein the first GPIO cell is further operably coupled to provide first output signals from a second circuit to the first pin when the mode selection signal is in a third state and to provide first alternate output signals from a second register to the first pin when the mode selection signal is in a fourth state; and a second GPIO cell operably coupled to a second pin of the integrated circuit to receive second input signals from the second pin and provide the second input signals to a third circuit when a second mode selection signal is in a first state and to provide the second input signals to a third register when the second mode selection signal is in a second state, wherein the second GPIO cell is further operably coupled to provide second output signals from a fourth circuit to the second pin when the second mode selection signal is in a third state and to provide second alternate output signals from a fourth register to the second pin when the second mode selection signal is in a fourth state.
 9. The configurable GPIO of claim 8, wherein the first GPIO cell comprises: a data input buffer having an input and an output, wherein the input of the data input buffer is operably coupled to the first pin; a data output buffer having an input and an output, wherein the output of the data output buffer is operably coupled to the first pin; a data input connection operably coupled to, when enabled, provide the first input signals from the output of the data input buffer to the first circuit; the first register operably coupled to, when enabled, store the first input signals for subsequent access by a processing core; a data output connection operably coupled to, when enabled, provide the first output signals from the second circuit to the input of the data output buffer; the second register operably coupled to, when enabled, provide the first alternate output signals to the input of the data output buffer; and an input/output selection module operably coupled to enable at least one of the data input buffer, the data output buffer, the data input connection, the first register, the data output connection, and the second register.
 10. The configurable GPIO of claim 9, wherein the input/output selection module comprises: a first control register operably coupled to store a multiplexer selection signal; a second control register operably coupled to store an overwriting enable/disable signal; a first multiplexer operably coupled to provide the first output signals to the input of the data output buffer when the multiplexer selection signal is in a first state and to provide the first alternate output signals to the input of the data output buffer when the multiplexer selection signal is in a second state; and a second multiplexer operably coupled to provide an output enable signal to the data output buffer when the multiplexer selection signal is in a third state and to provide the overwriting enable/disable signal to the data output buffer when the multiplexer selection signal is in a fourth state.
 11. The configurable GPIO of claim 8, wherein the second GPIO cell comprises: a data input buffer having an input and an output, wherein the input of the data input buffer is operably coupled to the second pin; a data output buffer having an input and an output, wherein the output of the data output buffer is operably coupled to the second pin; a data input connection operably coupled to, when enabled, provide the second input signals from the output of the data input buffer to the third circuit; the third register operably coupled to, when enabled, store the second input signals for subsequent access by a processing core; a data output connection operably coupled to, when enabled, provide the second output signals from the fourth circuit to the input of the data output buffer; the fourth register operably coupled to, when enabled, provide the second alternate output signals to the input of the data output buffer; and an input/output selection module operably coupled to enable at least one of the data input buffer, the data output buffer, the data input connection, the first register, the data output connection, and the second register.
 12. The configurable GPIO of claim 11, wherein the input/output selection module comprises: a first control register operably coupled to store a multiplexer selection signal; a second control register operably coupled to store an overwriting enable/disable signal; a first multiplexer operably coupled to provide the second output signals to the input of the data output buffer when the multiplexer selection signal is in a first state and to provide the second alternate output signals to the input of the data output buffer when the multiplexer selection signal is in a second state; and a second multiplexer operably coupled to provide an output enable signal to the data output buffer when the multiplexer selection signal is in a third state and to provide the overwriting enable/disable signal to the data output buffer when the multiplexer selection signal is in a fourth state.
 13. The configurable GPIO of claim 8 further comprises at least one of: the first circuit and the second circuit being part of a functional module; and the first and second circuits being part of different functional modules.
 14. The configurable GPIO of claim 8 further comprises at least one of: the third and fourth circuits being part of a functional module; and the third and fourth circuits being part of different functional modules.
 15. A multiple function system on a chip integrated circuit comprises: a processing module; on-chip memory operably coupled to the processing module; memory interface for accessing off-chip memory, wherein at least of the on-chip memory and the off chip memory store operational instructions that cause the processing module to perform at least one of a data file storage function, audio storage function, and audio playback function; a plurality of functional modules operably coupled to the processing module; and at least one general purpose input/output (GPIO) interface module operably coupled to the plurality of functional modules and the processing module, wherein the at least one GPIO includes a plurality of GPIO cells, wherein a GPIO cell of the plurality of GPIO cells is operably coupled to a corresponding pin of the multiple function system of a chip integrated circuit, wherein, when the multiple function system of a chip integrated circuit is in a first functional mode, the GPIO cell is operably coupled to the corresponding pin such that the corresponding pin functions as a digital input pin and when the multiple function system of a chip integrated circuit is in a second functional mode, the GPIO cell is operably coupled to the corresponding pin such that the corresponding pin functions as a digital output pin, wherein each of the plurality of GPIO cells comprises: a data input buffer having an input and an output, wherein the input of the data input buffer is operably coupled to the corresponding pin; a data output buffer having an input and an output, wherein the output of the data output buffer is operably coupled to the corresponding pin; a data input connection operably coupled to, when enabled, provide an inbound data signal from the output of the data input buffer to the first functional module; a data input register operably coupled to, when enabled, store the inbound data signal for subsequent access by a processing core; a data output connection operably coupled to, when enabled, provide an outbound data signal from the second functional module to the input of the data output buffer; a data output register operably coupled to, when enabled, provide an alternate outbound data signal to the input of the data output buffer; and an input/output selection module operably coupled to enable at least one of the data input buffer, the data output buffer, the data input connection, the data input register, the data output connection, and the data output register.
 16. The multiple function system on a chip integrated circuit of claim 15 further comprises: programmable logic fabric operably coupled between the at least one GPIO interface module and at least one of the plurality of functional modules.
 17. The multiple function system on a chip integrated circuit of claim 16 further comprises: remaining GPIO cells of the plurality of GPIO cells are operably coupled to the programmable logic fabric, wherein the programmable logic fabric is programmed to provide at least one of: coupling between at least some of the remaining GPIO cells and corresponding pins of a set of pins of the configurable integrated circuit; processing of inbound digital signals when the multiple function system of a chip integrated circuit is in the first functional mode; and processing of outbound digital signals when the multiple function system of a chip integrated circuit is in the second functional mode.
 18. The multiple function system on a chip integrated circuit of claim 15, wherein the plurality of functional modules comprises two or more of: a liquid crystal display (LCD) interface module; a light emitting diode (LED) interface module; a random access memory (RAM) interface module; a compact disk (CD) control interface module; flash memory interface module; hard drive; a two-wire interface module; and a system packet interface module.
 19. The multiple function system on a chip integrated circuit of claim 15, wherein the input/output selection module comprises: a first control register operably coupled to store a multiplexer selection signal; a second control register operably coupled to store an overwriting enable/disable signal; a first multiplexer operably coupled to provide the outbound data signal to the input of the data output buffer when the multiplexer selection signal is in a first state and to provide the alternate output data signal to the input of the data output buffer when the multiplexer selection signal is in a second state; and a second multiplexer operably coupled to provide an output enable signal to the data output buffer when the multiplexer selection signal is in a third state and to provide the overwriting enable/disable signal to the data output buffer when the multiplexer selection signal is in a fourth state.
 20. The multiple function system on a chip integrated circuit of claim 19 further comprises: the multiplexer selection signal being in the first state and the third state simultaneously, the first state and the fourth state simultaneously, the second state and the third state simultaneously, or the second state and the fourth state simultaneously.
 21. The multiple function system on a chip integrated circuit of claim 15, wherein the at least one general purpose input/output (GPIO) interface module further comprises: a first GPIO interface module operably coupled to first and second functional modules of the plurality of functional modules; and a second GPIO interface module operably coupled to a third and fourth functional modules of the plurality of functional modules, wherein, when the configurable integrated circuit is in a third functional mode, a GPIO cell of the second GPIO interface module is operably coupled to a second corresponding pin such that the second corresponding pin functions as a digital input pin and when the configurable integrated circuit is in a second functional mode, the GPIO cell of the second GPIO interface module is operably coupled to the second corresponding pin such that the second corresponding pin functions as a digital output pin. 